home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / NamSpacB.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  5.7 KB  |  249 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:NamSpacB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Scalar Types
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODBaseNameSpace_xh
  21. #define SOM_ODBaseNameSpace_xh
  22.  
  23. class ODBaseNameSpace;
  24.  
  25. #define ODBaseNameSpace_MajorVersion 1
  26. #define ODBaseNameSpace_MinorVersion 0
  27.  
  28. /* C++ som defs */
  29. #include <somcls.xh>
  30.  
  31. /* Include C++ parent defs */
  32. #ifndef SOM_ODObject_xh
  33. #include <ODObject.xh>
  34. #endif
  35.  
  36. #ifndef ODBaseNameSpace_API
  37. #define ODBaseNameSpace_API
  38. /*
  39.  * -- The Class API
  40.  */
  41.  
  42. /*
  43.  * Start of user-defined types:
  44.  */
  45. class ODExtension;
  46. class ODSession;
  47. class ODStorageUnitView;
  48. class ODNameSpaceManager;
  49. class ODNameSpace;
  50.  
  51. /*
  52.  * End of user-defined types.
  53.  */
  54.  
  55. #if applec ^ PRAGMA_LIB_EXPORT
  56. #pragma lib_export on
  57. #endif
  58.  
  59.  
  60. /* A procedure to create the ODBaseNameSpace Class */
  61. SOMEXTERN SOMClass * SOMLINK ODBaseNameSpaceNewClass(
  62.         integer4 majorVersion,
  63.         integer4 minorVersion);
  64.  
  65. /* The API to the ODBaseNameSpace class object, and the methods it introduces. */
  66. typedef struct ODBaseNameSpaceClassDataStructure {
  67.     SOMClass *classObject;
  68.     somMToken GetName;
  69.     somMToken Register;
  70.     somMToken Unregister;
  71.     somMToken GetValue;
  72.     somMToken Exists;
  73.     somMToken WriteToFile;
  74.     somMToken ReadFromFile;
  75.     somMToken WriteToStorage;
  76.     somMToken ReadFromStorage;
  77.     somMToken reserved1;
  78. } ODBaseNameSpaceClassDataStructure;
  79. #ifdef SOM_NO_DATA_EXPORTS
  80.    SOMEXTERN ODBaseNameSpaceClassDataStructure * ODBaseNameSpaceGetClassData ( void );
  81. #   undef ODBaseNameSpaceClassData
  82. #   define ODBaseNameSpaceClassData (*ODBaseNameSpaceGetClassData())
  83. #else
  84.    SOMEXTERN ODBaseNameSpaceClassDataStructure ODBaseNameSpaceClassData;
  85. #endif /* SOM_NO_DATA_EXPORTS */
  86.  
  87. #if applec ^ PRAGMA_LIB_EXPORT
  88. #pragma lib_export off
  89. #endif
  90.  
  91. #define _ODBaseNameSpace ODBaseNameSpaceClassData.classObject
  92.  
  93. /* The API to parentMtabs for ODBaseNameSpace, and the instance data it introduces. */
  94. SOMEXTERN struct ODBaseNameSpaceCClassDataStructure {
  95.     somMethodTabs parentMtab;
  96.     somDToken instanceDataToken;
  97. } ODBaseNameSpaceCClassData;
  98.  
  99. /*
  100.  * -- Typedefs for Procedures that support Methods introduced by ODBaseNameSpace
  101.  */
  102. SOMEXTERN {
  103. typedef ODISOStr   (* SOMLINK somTD_ODBaseNameSpace_GetName)(ODBaseNameSpace *somSelf, Environment *ev);
  104. typedef void   (* SOMLINK somTD_ODBaseNameSpace_Register)(ODBaseNameSpace *somSelf, Environment *ev,
  105.         ODISOStr key,
  106.         ODPtr value,
  107.         ODULong valueLength);
  108. typedef void   (* SOMLINK somTD_ODBaseNameSpace_Unregister)(ODBaseNameSpace *somSelf, Environment *ev,
  109.         ODISOStr key);
  110. typedef ODBoolean   (* SOMLINK somTD_ODBaseNameSpace_GetValue)(ODBaseNameSpace *somSelf, Environment *ev,
  111.         ODISOStr key,
  112.         ODPtr* value,
  113.         ODULong* valLen);
  114. typedef ODBoolean   (* SOMLINK somTD_ODBaseNameSpace_Exists)(ODBaseNameSpace *somSelf, Environment *ev,
  115.         ODISOStr key);
  116. typedef void   (* SOMLINK somTD_ODBaseNameSpace_WriteToFile)(ODBaseNameSpace *somSelf, Environment *ev,
  117.         ODFileRefNum file);
  118. typedef void   (* SOMLINK somTD_ODBaseNameSpace_ReadFromFile)(ODBaseNameSpace *somSelf, Environment *ev,
  119.         ODFileRefNum file);
  120. typedef void   (* SOMLINK somTD_ODBaseNameSpace_WriteToStorage)(ODBaseNameSpace *somSelf, Environment *ev,
  121.         ODStorageUnitView* view);
  122. typedef void   (* SOMLINK somTD_ODBaseNameSpace_ReadFromStorage)(ODBaseNameSpace *somSelf, Environment *ev,
  123.         ODStorageUnitView* view);
  124. }
  125.  
  126. #endif /* ODBaseNameSpace_API */
  127.  
  128.  
  129. /*
  130.  * -- Method Tokens are Thunks
  131.  */
  132. #undef somresolve_
  133. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  134.  
  135. /*
  136.  * -- The C++ Wrapper Class for ODBaseNameSpace
  137.  */
  138. class ODBaseNameSpace : public ODObject
  139. {
  140. public:
  141.  
  142. void *operator new(size_t size)
  143. {
  144.    SOM_IgnoreWarning(size);
  145.    if (!ODBaseNameSpaceClassData.classObject) 
  146.       ODBaseNameSpaceNewClass(ODBaseNameSpace_MajorVersion,ODBaseNameSpace_MinorVersion);
  147.    return (void *)
  148.       ((somTD_SOMClass_somNew)
  149.       somresolve_((SOMObject *)((void*)(ODBaseNameSpaceClassData.classObject)),
  150.                  SOMClassClassData.somNew))
  151.          ((SOMClass *)((void*)(ODBaseNameSpaceClassData.classObject)));
  152. }
  153.  
  154. void operator delete(void * obj)
  155. {
  156.    ((SOMObject *)obj)->somFree();
  157. }
  158.  
  159. /* public method: GetName */
  160. ODISOStr   GetName(Environment *ev)
  161. {
  162.    return SOM_Resolve(this,ODBaseNameSpace,GetName)
  163.     (this,ev);
  164. }
  165.  
  166.  
  167. /* public method: Register */
  168. void   Register(Environment *ev,
  169.         ODISOStr key,
  170.         ODPtr value,
  171.         ODULong valueLength)
  172. {
  173.    SOM_Resolve(this,ODBaseNameSpace,Register)
  174.     (this,ev,key,value,valueLength);
  175. }
  176.  
  177.  
  178. /* public method: Unregister */
  179. void   Unregister(Environment *ev,
  180.         ODISOStr key)
  181. {
  182.    SOM_Resolve(this,ODBaseNameSpace,Unregister)
  183.     (this,ev,key);
  184. }
  185.  
  186.  
  187. /* public method: GetValue */
  188. ODBoolean   GetValue(Environment *ev,
  189.         ODISOStr key,
  190.         ODPtr* value,
  191.         ODULong* valLen)
  192. {
  193.    return SOM_Resolve(this,ODBaseNameSpace,GetValue)
  194.     (this,ev,key,value,valLen);
  195. }
  196.  
  197.  
  198. /* public method: Exists */
  199. ODBoolean   Exists(Environment *ev,
  200.         ODISOStr key)
  201. {
  202.    return SOM_Resolve(this,ODBaseNameSpace,Exists)
  203.     (this,ev,key);
  204. }
  205.  
  206.  
  207. /* public method: WriteToFile */
  208. void   WriteToFile(Environment *ev,
  209.         ODFileRefNum file)
  210. {
  211.    SOM_Resolve(this,ODBaseNameSpace,WriteToFile)
  212.     (this,ev,file);
  213. }
  214.  
  215.  
  216. /* public method: ReadFromFile */
  217. void   ReadFromFile(Environment *ev,
  218.         ODFileRefNum file)
  219. {
  220.    SOM_Resolve(this,ODBaseNameSpace,ReadFromFile)
  221.     (this,ev,file);
  222. }
  223.  
  224.  
  225. /* public method: WriteToStorage */
  226. void   WriteToStorage(Environment *ev,
  227.         ODStorageUnitView* view)
  228. {
  229.    SOM_Resolve(this,ODBaseNameSpace,WriteToStorage)
  230.     (this,ev,view);
  231. }
  232.  
  233.  
  234. /* public method: ReadFromStorage */
  235. void   ReadFromStorage(Environment *ev,
  236.         ODStorageUnitView* view)
  237. {
  238.    SOM_Resolve(this,ODBaseNameSpace,ReadFromStorage)
  239.     (this,ev,view);
  240. }
  241.  
  242.  
  243.  
  244. };   /* ODBaseNameSpace */
  245.  
  246.  
  247.  
  248. #endif       /* SOM_ODBaseNameSpace_xh */
  249.